//
//  WSQSelectionView.h
//  RACTest
//
//  Created by 翁胜琼 on 2018/10/12.
//  Copyright © 2018 翁胜琼. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "WSQSelectionItem.h"

// cell 样式
typedef NS_ENUM(NSUInteger, WSQSelectionViewStyle) {
    WSQSelectionViewRoundedRect = 0 // 样式0,
    
};

typedef void(^didSelectItemBlock)(WSQSelectionItem *item);

NS_ASSUME_NONNULL_BEGIN

@interface WSQSelectionView : UIView

/************************ 数据设置 ************************/
@property (copy,nonatomic) NSArray<WSQSelectionItem *> *items;    // 模型数据
@property (copy,nonatomic) NSArray<WSQSelectionItem *> *selectedItems;   // 选中 item

/************************ UI 设置 ************************/
@property (nonatomic,assign) WSQSelectionViewStyle style;   // cell 样式
@property (nonatomic,assign) NSInteger numberOfColumn;  // 每一行的最大列数,默认四列

@property (nonatomic,assign) NSInteger suggestViewHeight;   // 推荐视图高度 ， 通过计算得到
@property(nonatomic) CGFloat minimumLineSpacing;    // cell 之间最小间距,默认12
@property(nonatomic) CGFloat minimumInteritemSpacing;   // cell 之间最小间距 默认16
@property(nonatomic) UIEdgeInsets contentInset;     // 四周缩进,默认是zero

@property(nonatomic, assign) BOOL isScrollEnabled;  // 是否允许滑动,默认允许
@property (nonatomic,assign) BOOL allowsSelection; // 是否允许选中默认允许
@property (nonatomic,assign) BOOL allowsMultipleSelection; // 是否允许多选默认不允许

/************************ 回调 ************************/
@property (copy,nonatomic) didSelectItemBlock didSelectedItemBlock;

- (void)reloadData; // 刷新数据

/************************ Cell 样式设置 ************************/
@property (nonatomic,assign) CGFloat cellHeight;  // cell 高度，默认25
@property (nonatomic,assign) CGFloat cellCornerRadius;  // cell 圆角,默认0
@property (nonatomic,assign) CGFloat titleLabelFontsize;  // cell label 的字体大小，默认14

// 设置 cell 文字颜色，默认是否选中都是黑色
- (void)setTitleColor:(nullable UIColor *)color forState:(UIControlState)state;
// 设置 cell 背景颜色，默认是否选中都是白
- (void)setBackgroundColor:(nullable UIColor *)color forState:(UIControlState)state;
// 设置 cell 背景图片，默认是否选中都是白
- (void)setBackgroundImage:(nullable UIImage *)image forState:(UIControlState)state;

/************************ 初始化方法 ************************/

-(instancetype)initWithFrame:(CGRect)frame items:(NSArray<WSQSelectionItem*>*) items
              preferredStyle:(WSQSelectionViewStyle)style;


@end

NS_ASSUME_NONNULL_END
